﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Controls;
using ZaidimasSandelys.CustomDrawTools;
using ZaidimasSandelys.Models.DataStructures;

namespace ZaidimasSandelys.Models.Interfaces
{
    public interface IMainWindowModel
    {

#if DEBUG
        IAppData AppData { get; }
#endif
        /// <summary>
        /// Muzikinio failo vardas nuskaitytas iš <code>App.config</code>
        /// </summary>
        string Mp3FileName { get; }

        /// <summary>
        /// Pasirinktas žaidimo lygis
        /// </summary>
        GameLevel GameComplexity { get; set; }
        
        /// <summary>
        /// Pasirinktas žaidimo variantas
        /// </summary>
        short GameVariant { get; set; }
        
        /// <summary>
        /// <code>true></code> - žaidimas pradėtas
        /// </summary>
        bool IsStarted { get; set; }

        /// <summary>
        /// Žmogeliukas
        /// </summary>
        PersonVisual Person { get; set; }
 
        /// <summary>
        /// Užkrauna konkretaus lygio variantus
        /// </summary>
        void LoadGameVariants(ComboBox cmbBox);

        string MovementsLabelText { get; }
        string StatusLabelText { get; }

        /// <summary>
        /// Kontroleris taip pat gali pakurti bindimo įvykius
        /// </summary>
        /// <param name="propertyName"></param>
        void NotifyPropertyChanged(string propertyName);

        /// <summary>
        /// Postūmių skaičius
        /// </summary>
        int MovementCount { get; set; }
    }

}
